package com.smedi.ismedi.progress.core.domain.service;

import com.smedi.ismedi.constructionproject.api.dto.response.ProjectBasicResponse;
import com.smedi.ismedi.progress.core.domain.aggregatemodel.Progress;
import com.smedi.ismedi.progress.core.domain.aggregatemodel.ProgressReport;
import com.smedi.ismedi.progress.core.domain.aggregatemodel.WeekMonthReportEidt;
import com.smedi.ismedi.progress.core.port.adapter.persistence.model.ProgressReportEntity;

import java.util.List;
import java.util.Map;

/**
 * 业务服务接口
 *
 * @author pengyan
 * @date 2022/09/20
 */
public interface ProgrressReportDomainService {


    void updateProgressReportData(Progress versionManage);

    ProgressReport updateProgressReport(ProgressReport weekReport);

    ProjectBasicResponse getProject(Long projectId);

    void updateReportDetailToProject(ProgressReport weekReport);

    WeekMonthReportEidt saveReportAndDetial(WeekMonthReportEidt weekMonthReportEidt);

    Integer findTimeCount(WeekMonthReportEidt weekMonthReportEidtQuery);

    WeekMonthReportEidt getWeekMonthReportOne(WeekMonthReportEidt weekMonthReportEidtNew);

    Integer findWeekReport(String firstDay, int weekType, Long id, Long projectId, int type);

    List<ProgressReportEntity> getAllProgressReport();

    Integer findMonthReport(int monthType, Long projectId, Long id, int weekMonthDraftStatus);

    List<Map<String, Object>> milestoneAndKeyLagging7(ProgressReport weekReport);

    Integer findMonthNoReport(int monthType, Long projectId);
}